A virtual fixture is an overlay of augmented sensory information upon a user's perception of a real environment in order to improve human performance in both direct and telerobotics tasks. Developed in the early 1990s by Louis Rosenberg at the U.S. Air Force Research Laboratory (AFRL), Virtual Fixtures was a pioneering platform in virtual reality and augmented reality technologies.
Fitts Law performance testing was conducted on batteries of human test subjects, demonstrating for the first time, that a significant enhancement in human performance of real-world dexterous tasks could be achieved by providing immersive augmented reality overlays to users.
The definition of virtual fixtures is much broader than simply providing guidance of the end-effector. For example, auditory virtual fixtures are used to increase the user awareness by providing audio clues that helps the user by providing multi modal cues for localization of the end-effector. However, in the context of human-machine collaborative systems, the term virtual fixtures is often used to refer to a task dependent virtual aid that is overlaid upon a real environment and guides the user's motion along desired directions while preventing motion in undesired directions or regions of the workspace.
Virtual fixtures can be either guiding virtual fixtures or forbidden regions virtual fixtures. A forbidden regions virtual fixture could be used, for example, in a teleoperation setting where the operator has to drive a vehicle at a remote site to accomplish an objective. If there are pits at the remote site which would be harmful for the vehicle to fall into forbidden regions could be defined at the various pits locations, thus preventing the operator from issuing commands that would result in the vehicle ending up in such a pit.
Such illegal commands could easily be sent by an operator because of, for instance, delays in the teleoperation loop, poor telepresence or a number of other reasons.
An example of a guiding virtual fixture could be when the vehicle must follow a certain trajectory,
The operator is then able to control the progress along the preferred direction while motion along the non-preferred direction is constrained.
With both forbidden regions and guiding virtual fixtures the stiffness, or its inverse the compliance, of the fixture can be adjusted. If the compliance is high (low stiffness) the fixture is soft. On the other hand, when the compliance is zero (maximum stiffness) the fixture is hard.
Thus the control signal would be computed from the operator's input velocity as:
If there exists a one-to-one mapping between the operator and the slave robot.
If the constant is replaced by a diagonal matrix it is possible to adjust the compliance independently for different dimensions of . For example, setting the first three elements on the diagonal of to and all other elements to zero would result in a system that only permits translational motion and not rotation. This would be an example of a hard virtual fixture that constrains the motion from to . If the rest of the elements on the diagonal were set to a small value, instead of zero, the fixture would be soft, allowing some motion in the rotational directions.
To express more general constraints assume a time-varying matrix which represents the preferred direction at time . Thus if the preferred direction is along a curve in . Likewise, would give preferred directions that span a surface. From two projection operators can be defined, the span and kernel of the column space:
\begin{align} \textrm{Span}(\mathbf{D}) & \equiv \left = \mathbf{D}(\mathbf{D}^T\mathbf{D})^{-1}\mathbf{D}^T \\ \textrm{Kernel}(\mathbf{D}) & \equiv \langle \mathbf{D} \rangle = \mathbf{I} - \left \end{align}If does not have full column rank the span can not be computed, consequently it is better to compute the span by using the pseudo-inverse, thus in practice the span is computed as:
\textrm{Span}(\mathbf{D}) \equiv \left = \mathbf{D}(\mathbf{D}^T\mathbf{D})^{\dagger}\mathbf{D}^T where denotes the pseudo-inverse of .If the input velocity is split into two components as:
\mathbf{v}_\textrm{op} \textrm{~and~} \mathbf{v}_\tau \equiv \mathbf{v}_\textrm{op} - \mathbf{v}_\textrm{D} = \langle \mathbf{D} \rangle \mathbf{v}_\textrm{op} it is possible to rewrite the control law as: \mathbf{v}_\tau \right)Next introduce a new compliance that affects only the non-preferred component of the velocity input and write the final control law as:
\mathbf{v} = c \left( \mathbf{v}_\textrm{D} + c_\tau \cdot \mathbf{v}_\tau \right) = c \left( \left + c_\tau \langle \mathbf{D} \rangle \right) \mathbf{v}_\textrm{op}
|
|